package br.com.scitv.tela;


import java.io.IOException;

import br.com.scitv.SCITV;
import br.com.scitv.action.SCITVAction;
import br.com.scitv.bean.Cliente;
import br.com.scitv.util.TecladoVirtual;

import com.sun.dtv.lwuit.Form;
import com.sun.dtv.lwuit.Image;
import com.sun.dtv.lwuit.Label;
import com.sun.dtv.lwuit.geom.Dimension;
import com.sun.dtv.ui.event.RemoteControlEvent;
import com.sun.dtv.ui.event.UserInputEvent;

public class TelaComprarProduto extends Tela
{
	private Label fundo;
	private Label informaco;
	
	private Label endereco;
	private Label nome;
	private Label telefone;
	private Label complemento;
	
	private SCITVAction action;
	// fim dados do produto

	private int selecao;
	private int borda = 15;
	private Label imgSelecao;

	private Label[] labels;
	private Form form;
	
	public TelaComprarProduto(SCITVAction action) {
		this.action = action;
		selecao = 0;
		fundo = new Label();
		labels = new Label[4];
		form = new Form();
	}
	
	public void addComponentes(){

		dtvcontainer.addComponent(form);
		
		try {
			fundo.setIcon(Image.createImage(SCITV.getPropiedadePathImagem("img.inicial")));
		} catch (Exception e) {		
			System.out.println("Error while loading image " +  e.getMessage());
		}

		fundo.setX( borda );
		fundo.setY( borda );
		fundo.setSize( new Dimension( planeSetup.getScreenResolution().getWidth()/100*30,  planeSetup.getScreenResolution().getHeight() ) );
		form.addComponent(fundo);
		
		informaco = new Label();
		informaco.setX(borda);
		informaco.setY(100);
		form.addComponent(informaco);
		
		try {
			addComponentesComprador();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		form.repaint();
	}
	
	private void addComponentesComprador() throws IOException{
		int posicaoY = 0;
		int distanciaY = 12;
				
		nome = new Label();
		nome.setText("Nome: ");
		nome.setX(borda);
		nome.setY(borda);
		form.addComponent(nome);
		posicaoY = distanciaY+borda;
		labels[0] = new Label();
		labels[0].setX(borda + distanciaY*6);
		labels[0].setY(borda);
		form.addComponent(labels[0]);
		
		endereco = new Label();
		endereco.setText("End.: ");
		endereco.setX(borda);
		endereco.setY(posicaoY);
		form.addComponent(endereco);
		labels[1] = new Label();
		labels[1].setX(borda + distanciaY*6);
		labels[1].setY(posicaoY);
		form.addComponent(labels[1]);
		posicaoY += distanciaY;
		
		telefone = new Label();
		telefone.setText("Telefone: ");
		telefone.setX(borda);
		telefone.setY(posicaoY);
		form.addComponent(telefone);
		labels[2] = new Label();
		labels[2].setX(borda + distanciaY*6);
		labels[2].setY(posicaoY);
		form.addComponent(labels[2]);
		posicaoY += distanciaY;
		
		complemento = new Label();
		complemento.setText("");
		complemento.setX(borda);
		complemento.setY(posicaoY);
		form.addComponent(complemento);
		labels[3] = new Label();
		labels[3].setX(50);
		labels[3].setY(50);
		form.addComponent(labels[3]);
		posicaoY += distanciaY;
		
		imgSelecao = new Label();
		imgSelecao.setIcon(Image.createImage(SCITV.getPropiedadePathImagem("img.selecao")));
		imgSelecao.setX(borda-4);
		imgSelecao.setY(borda);
		form.addComponent(imgSelecao);
	}

	public void userInputEventReceived(UserInputEvent inputEvent) {
		com.sun.dtv.ui.event.KeyEvent event = (com.sun.dtv.ui.event.KeyEvent) inputEvent;

		switch(event.getKeyCode()){
		case RemoteControlEvent.VK_DOWN:
			System.out.println("TelaComprarProduto.userInputEventReceived() - VK_DOWN");
			selecao++;
			break;
		case RemoteControlEvent.VK_ENTER:
			System.out.println("TelaComprarProduto.userInputEventReceived() - VK_ENTER");
			TecladoVirtual teclado = new TecladoVirtual(this, labels[selecao]);
			teclado.iniciar();
			selecao++;
			break;
		case RemoteControlEvent.VK_COLORED_KEY_0:
			System.out.println("TelaComprarProduto.userInputEventReceived() - VK_COLORED_KEY_0");
			
			/*Cliente cliente = new Cliente(labels[0].getText(), labels[1].getText(), labels[2].getText(), labels[3].getText());
			action.finalizarCompora(cliente);
			form.removeAll();
			informaco.setText(SCITV.getPropiedadePathImagem("texto.finaliza.compra"));
			form.addComponent(informaco); */
			
			action.escolherFormaPagamento();
			
			form.removeAll();
			form.repaint();
			break;
		}
		
		
		if(selecao >= labels.length)
			selecao = 0;
		
		form.repaint();
		event = null;
	}

}
